#! /usr/bin/env python
# -*- coding:utf-8 -*-
# @Time : 2020-04-12 19:03
# @Author : youngchaolin


# 1 看代码得出结果
def func1():
    print('I am func1')

def func2(x):
    print('I am func2')
    return x

def func3(y):
    print('I am func3')
    return y

ret=func2(func1)
ret()
ret2=func3(func2)
ret3=ret2(func1)
ret3()

# I am func2
# I am func1
# I am func3
# I am func2
# I am func1

# 2 看代码写结果
def func():
    for item in range(10):
        pass
    print(item)
func() # 9

# 3 看代码写结果
li=[]
def func(args):
    li.append(args)
    return li
print(func(1))
print(func(2))
print(func(3))
print(li)

# 4 看代码写结果
def magic_list(s,li=[]):
    li.append(s)
    return li

l1=magic_list(100,)
l2=magic_list('messi',[])
l3=magic_list('ronald',)

print(f'l1的结果是{l1}')
print(f'l2的结果是{l2}')
print(f'l3的结果是{l3}')

# 5 写函数，传入n个数，返回字典{'max':最大值,'min':最小值}
# 只考虑知识点不考虑逻辑是否全面
dic={}
def get_number(*args):
    max_value=max(args)
    min_value=min(args)
    dic['max']=max_value
    dic['min']=min_value
    return dic
print(get_number(1,2,3,4,5,5,100))

# 6 写一个函数，返回除大小王之外的52张扑克牌，每一项是一个字典[{'红心':2},{'黑桃':1},...]
shape=['红心','黑桃','梅花','方块']
number=[1,2,3,4,5,6,7,8,9,10,'J','Q','K']
shape_it=iter(shape)
li=[]
for i in range(len(shape)):
    s=shape_it.__next__()
    # 下面for循环完后，不能回头，因此需要临时再新建对象
    number_it = iter(number)
    for j in range(len(number)):
        dic={}
        dic[s]=next(number_it)
        li.append(dic)
print(li)

# 7 写代码完成 99 乘法表
print('----python版本九九乘法表----')
for i in range(1,10,1):
    s=''
    for j in range(1,i+1,1):
        if j!=i:
            # 不到最后，需要用分隔符隔开
            s+=str(i)+'*'+str(j)+'='+str(i*j)+'\t'
        else:
            # 到了最后，不需要用分隔符隔开
            s+=str(i)+'*'+str(j)+'='+str(i*j)
    # 打印
    print(s)
